Skip to content

opentsne: add build-opentsne.yml for riscv64 wheels - #1789

Merged
luhenry merged 2 commits into
mainfrom
opentsne
Sep 12, 2026
Merged

luhenry merged 2 commits into
mainfrom
opentsne

Conversation

@luhenry

@luhenry luhenry commented Sep 11, 2026

Copy link
Copy Markdown
Member

Compiles openTSNE's Cython/C++ t-SNE extensions (Barnes-Hut quad-tree, KL divergence, vendored Annoy nearest-neighbour index), OpenMP-parallel. Upstream publishes no riscv64 wheel.

Mirrors upstream's azure-pipelines-release.yml Linux job. setup.py probes for FFTW3 headers at build time and falls back to the numpy FFT implementation when absent, same as upstream's own manylinux wheels (no FFTW3 installed there either).

Differs from upstream

  • Registry index added so numpy/scipy/scikit-learn resolve for riscv64, pinned to binary-only.

Testing

  • hnswlib/pynndescent not installed (no riscv64 wheels); their tests self-skip via unittest.skipIf.

License: wheel bundles libgomp (GPLv3 with the GCC Runtime Library Exception) from the build image, so its sources are published with the release; also vendors Spotify's annoy (Apache-2.0), whose licence text was missing from the wheel, now shipped via a patch.

Patches

  • 0001-ship-annoy-s-Apache-2.0-LICENSE-in-the-wheel-s-dist-.patch - To upstream [not filed]. Without it, the wheel carries no licence text for the vendored annoy extension. Reproduces off riscv64.

Built on cp312; 145 passed, 27 skipped.

luhenry added a commit that referenced this pull request Sep 11, 2026
Running pytest from {project}/tests puts the checked-out openTSNE/
source tree (no compiled .so) ahead of the installed wheel on
sys.path, so import openTSNE resolves to source and fails on
'from openTSNE import _tsne'. Stage tests/ + pyproject.toml into an
empty cwd instead (gotcha 25).
@luhenry
luhenry merged commit 383e42d into main Sep 12, 2026
11 checks passed
@luhenry
luhenry deleted the opentsne branch September 12, 2026 19:29
@luhenry luhenry linked an issue Sep 12, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

opentsne riscv64 support

1 participant